// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Code generated by sidekick. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;

impl std::fmt::Debug for super::MessageWithEnum {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithEnum");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithOneOf {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithOneOf");
        debug_struct.field("single_string", &self.single_string);
        debug_struct.field("two_strings", &self.two_strings);
        debug_struct.field("one_message", &self.one_message);
        debug_struct.field("mixed", &self.mixed);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::message_with_one_of::Message {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("Message");
        debug_struct.field("parent", &self.parent);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithComplexOneOf {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithComplexOneOf");
        debug_struct.field("complex", &self.complex);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::message_with_complex_one_of::Inner {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("Inner");
        debug_struct.field("strings", &self.strings);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithF32 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithF32");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithF64 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithF64");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithI32 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithI32");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map_value", &self.map_value);
        debug_struct.field("map_key", &self.map_key);
        debug_struct.field("map_key_value", &self.map_key_value);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithU32 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithU32");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map_value", &self.map_value);
        debug_struct.field("map_key", &self.map_key);
        debug_struct.field("map_key_value", &self.map_key_value);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithI64 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithI64");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map_value", &self.map_value);
        debug_struct.field("map_key", &self.map_key);
        debug_struct.field("map_key_value", &self.map_key_value);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithU64 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithU64");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map_value", &self.map_value);
        debug_struct.field("map_key", &self.map_key);
        debug_struct.field("map_key_value", &self.map_key_value);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithBytes {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithBytes");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithBool {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithBool");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map_value", &self.map_value);
        debug_struct.field("map_key", &self.map_key);
        debug_struct.field("map_key_value", &self.map_key_value);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithString {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithString");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map_value", &self.map_value);
        debug_struct.field("map_key", &self.map_key);
        debug_struct.field("map_key_value", &self.map_key_value);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithRecursion {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithRecursion");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::message_with_recursion::Level0 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("Level0");
        debug_struct.field("level_1", &self.level_1);
        debug_struct.field("side", &self.side);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::message_with_recursion::Level1 {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("Level1");
        debug_struct.field("recurse", &self.recurse);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::message_with_recursion::NonRecursive {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("NonRecursive");
        debug_struct.field("value", &self.value);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithValue {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithValue");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithStruct {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithStruct");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithListValue {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithListValue");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithNullValue {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithNullValue");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithFieldMask {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithFieldMask");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("optional", &self.optional);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithFloatValue {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithFloatValue");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithDoubleValue {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithDoubleValue");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithInt32Value {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithInt32Value");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithUInt32Value {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithUInt32Value");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithInt64Value {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithInt64Value");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithUInt64Value {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithUInt64Value");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithBytesValue {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithBytesValue");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithBoolValue {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithBoolValue");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}

impl std::fmt::Debug for super::MessageWithStringValue {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let mut debug_struct = f.debug_struct("MessageWithStringValue");
        debug_struct.field("singular", &self.singular);
        debug_struct.field("repeated", &self.repeated);
        debug_struct.field("map", &self.map);
        if !self._unknown_fields.is_empty() {
            debug_struct.field("_unknown_fields", &self._unknown_fields);
        }
        debug_struct.finish()
    }
}
